﻿using Prism.Modularity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Company.Hardware.Base.Extensions
{
    public static class IModuleManagerExtension
    {
        /* 说明
         * 只保存解码类的反射
         * 方便将来通过反射得到一个解码器的实例
         * 保存到一个集合中
         */

        /// <summary>
        /// 解码器的反射集合
        /// </summary>
        private static HashSet<Type> Types { get; } = new HashSet<Type>();

        /// <summary>
        /// 获取所有解码反射列表
        /// </summary>
        /// <param name="moduleManager"></param>
        /// <returns></returns>
        public static HashSet<Type> Get(this IModuleManager moduleManager) => Types;

        /// <summary>
        /// 添加一个反射类
        /// </summary>
        /// <param name="moduleManager"></param>
        /// <param name="type"></param>
        public static void Add(this IModuleManager moduleManager, Type type)
        { 
            Types.Add(type); 
        }

    }
}
